Caching হলো একটি প্রযুক্তি যা ডেটা বা রেসপন্সগুলিকে স্টোর করে রাখে, যাতে পুনরায় একই রিকোয়েস্ট আসলে দ্রুত রেসপন্স দেওয়া যায়। এটি ওয়েব অ্যাপ্লিকেশনের পারফরম্যান্স এবং স্কেলেবিলিটি বাড়ানোর জন্য ব্যবহৃত হয়। ASP.NET Web Forms এ দুটি গুরুত্বপূর্ণ ধরনের কaching রয়েছে: Page Caching এবং Data Caching।
এগুলির মাধ্যমে আপনি ওয়েব অ্যাপ্লিকেশনের কর্মক্ষমতা বাড়াতে পারেন এবং সার্ভারের লোড কমাতে পারেন।
Page Caching (অথবা Full Page Caching) হলো একটি কৌশল, যেখানে সম্পূর্ণ ওয়েব পেজের আউটপুট কপি স্টোর করা হয়, যাতে পরবর্তী রিকোয়েস্টগুলোর জন্য সেই পেজটি আবার তৈরি না করতে হয়। এটি সাধারণত ডায়নামিক কন্টেন্টের ক্ষেত্রে ব্যবহার করা হয়, যাতে সার্ভারকে প্রতিবার পেজ রেন্ডার করতে না হয় এবং দ্রুত ফলাফল পাওয়া যায়।
ASP.NET Web Forms এ Page Caching ব্যবহার করার জন্য, OutputCache ডিরেকটিভ ব্যবহার করা হয়।
OutputCache ডিরেকটিভের মাধ্যমে পেজের পুরো আউটপুট ক্যাশ করা যায়। নিচের কোডটি দেখুন:
<%@ OutputCache Duration="60" VaryByParam="None" %>
এখানে:
OutputCache ডিরেকটিভের বিভিন্ন প্যারামিটার রয়েছে, যা পেজ ক্যাশিংকে কাস্টমাইজ করতে সাহায্য করে:
<%@ OutputCache Duration="120" VaryByParam="id" %>
এখানে id প্যারামিটারটি ভিত্তিতে আলাদা আলাদা পেজ ক্যাশ হবে। অর্থাৎ, যদি id প্যারামিটার পরিবর্তিত হয়, তবে নতুন পেজ ক্যাশ হবে।
Data Caching হলো একটি কৌশল, যেখানে নির্দিষ্ট ডেটা বা ভ্যালু স্টোর করা হয়, যেমন একটি ডেটাবেস কুয়েরি বা ওয়েব সার্ভিস থেকে প্রাপ্ত তথ্য, যাতে সেটি পরে দ্রুত অ্যাক্সেস করা যায়। এটি পুরো পেজ ক্যাশিংয়ের তুলনায় আরও সুনির্দিষ্টভাবে ডেটা ক্যাশ করে, এবং অ্যাপ্লিকেশন প্রোগ্রামেবল ডেটা দ্রুত রিটার্ন করতে সক্ষম হয়।
ASP.NET Web Forms এ Data Caching করার জন্য Cache অবজেক্ট ব্যবহার করা হয়।
ডেটা ক্যাশিংয়ের মাধ্যমে, আপনি নির্দিষ্ট ডেটা যেমন ডেটাবেস কুয়েরি রেজাল্ট বা যেকোনো API রেসপন্স ক্যাশ করতে পারেন।
// ডেটা ক্যাশ করা
Cache["UserData"] = GetUserDataFromDatabase();
এখানে, Cache["UserData"] এ ডেটাবেস থেকে প্রাপ্ত তথ্য রাখা হচ্ছে। এরপর এই ক্যাশড ডেটা পুনরায় ব্যবহার করা যাবে।
ডেটা ক্যাশ করার সময়, আপনি একটি Expiration Policy নির্ধারণ করতে পারেন, যাতে ক্যাশড ডেটা একটি নির্দিষ্ট সময় পরে অপ্রচলিত (expired) হয়ে যায়।
Cache["UserData"] = GetUserDataFromDatabase();
Cache["UserData"].AbsoluteExpiration = DateTime.Now.AddMinutes(10);
এখানে, AbsoluteExpiration সেট করা হয়েছে যাতে ১০ মিনিট পর ডেটা অপ্রচলিত হয়ে যায় এবং নতুন তথ্য লোড করতে হবে।
Data Caching এ বিভিন্ন কৌশল রয়েছে, যা আপনি প্রয়োজনে ব্যবহার করতে পারেন:
Sliding Expiration: একটি সময় সীমা নির্ধারণ করা হয়, এবং নির্দিষ্ট সময় পর্যন্ত কোনো রিকোয়েস্ট না আসলে ক্যাশ ডেটা মুছে ফেলা হয়।
Cache["UserData"] = GetUserDataFromDatabase();
Cache["UserData"].SlidingExpiration = TimeSpan.FromMinutes(5);
Priority-Based Expiration: ক্যাশের ডেটার প্রাধান্য নির্ধারণ করা হয়, যাতে কম গুরুত্বপূর্ণ ডেটা আগে মুছে ফেলা হয়।
Cache["UserData"] = GetUserDataFromDatabase();
Cache["UserData"].Priority = CacheItemPriority.Low;
বিষয় | Page Caching | Data Caching |
---|---|---|
ক্যাশিংয়ের ধরন | সম্পূর্ণ ওয়েব পেজের আউটপুট ক্যাশ করা হয়। | নির্দিষ্ট ডেটা (যেমন, ডেটাবেস কুয়েরি) ক্যাশ করা হয়। |
স্টোরেজ | সার্ভারে বা ক্লায়েন্টে পুরো পেজ সংরক্ষিত হয়। | শুধু ডেটা সংরক্ষিত হয়, যেমন কুয়েরি রেজাল্ট। |
ব্যবহার | ডায়নামিক পেজের রেন্ডারিং সময় কমানোর জন্য। | সার্ভার লোড কমানোর জন্য এবং ডেটার পুনরায় অ্যাক্সেস দ্রুত করার জন্য। |
অপ্টিমাইজেশন | সম্পূর্ণ পেজ রেন্ডারিং দ্রুত করা হয়। | নির্দিষ্ট ডেটা দ্রুত পেতে সহায়তা করে। |
Page Caching এবং Data Caching দুটি গুরুত্বপূর্ণ কৌশল যা ওয়েব অ্যাপ্লিকেশনের পারফরম্যান্স বৃদ্ধি করে। Page Caching পুরো পেজের আউটপুট ক্যাশ করে, যা একই পেজের জন্য বারবার রেন্ডারিং কমায় এবং দ্রুত ফলাফল দেয়। অন্যদিকে, Data Caching নির্দিষ্ট ডেটা সংরক্ষণ করে এবং তার অ্যাক্সেস দ্রুত করে, যেমন ডেটাবেস কুয়েরি রেজাল্ট। সঠিকভাবে ক্যাশিং ব্যবহার করলে ওয়েব অ্যাপ্লিকেশনের পারফরম্যান্স এবং স্কেলেবিলিটি উল্লেখযোগ্যভাবে বৃদ্ধি পায়।
common.read_more